Link-aware transmission control protocol

ABSTRACT

In a TCP/IP network, congestion control techniques such as slow start and congestion avoidance are employed. Such networks include wired and wireless links. However, normal operation of the wireless links exhibit different latencies than those exhibited over the wired link. The protocols employed in the wired network do not lend themselves well to efficient communication over wireless connections, and can cause slow start to be triggered. Determining when a sender will timeout due to non-receipt of an ACK, and intervening with a suppression message having an advertised window of zero to pause the user, are employed to prevent congestion control mechanisms such as slow start and congestion avoidance from activation

BACKGROUND OF THE INVENTION

Wireless network infrastructure equipment is increasingly being used toallow computing devices to communicate over a wireless medium to a wirednetwork such as the Internet. In a wireless data network, a plurality oflocal computing devices, such as PCs, are supported via wirelesssubscriber access units. Each subscriber access unit (SAU) provides awireless radio link to a base station processor. The base stationprocessor (BSP) is also connected to an Internet gateway that provides aconnection to a wired network.

Wired networks typically employ congestion control techniques to detectthe speed with which messages are propagated across the network to arecipient. These techniques reduce congestion through avoidingoverburdening a recipient with messages by reducing the rate at whichmessages are sent, and consequentially reducing throughput. However,normal operation of the wireless network exhibits different latenciesthan those exhibited during normal operation of the wired network.Accordingly, such techniques can interpret the queuing of messages atthe base station processor as congestion, and accordingly, reducethroughput. In general, the protocols employed in the wired network donot lend themselves well to efficient communication over wirelessconnections.

In a TCP/IP network, for example, congestion control techniques such asslow start and congestion avoidance are employed. In accordance with theslow start technique, as defined in Internet RFC 2581, an acknowledgmentmessage (ACK) is expected as a response to every second packet (message)sent. A sliding window protocol is employed to regulate the number ofunacknowledged messages which can be outstanding at any time. Thissliding window, which is indicative of the number of unacknowledgedmessage permitted at any time, is initially set at a low number,typically two messages. The number of messages permitted in the windowis gradually increased as the ACKs are received in a timely manner. If,however, an ACK is not received after a timeout threshold, or ifduplicate ACKs are received, the window may be reset to the initialvalue (typically one) and must again be permitted to gradually increaseas described above.

The queuing of messages at the base station processor, however, is notnecessarily indicative of congestion in the wireless network. Rather,the queuing is indicative of the propagation delay or the assignmentdelay of wireless resources. This propagation delay is interpreted,however, as congestion by the wired line protocols such as TCP/IP whenthe ACK is not received within the timeout expected by the wirednetwork. Accordingly, the wireless connection tends to be throttled backto a sliding window of two by slow start more frequently, therebyreducing throughput.

Another TCP/IP congestion control parameter employed by congestionavoidance and slow start is an advertised window. The advertised windowis contained in the ACK and informs the sender how many more messagesthe receiver can accept. This prevents a sender from overburdening areceiver with more packets than it can buffer, therefore avoidingsending packets which are likely to be dropped or result in a timeout.While technically separate, the slow start and congestion avoidancemechanisms are typically implemented in a complementary manner. Thesliding window and slow start are congestion control imposed by thesender, while the advertised window is congestion control imposed by thereceiver.

A further aspect of the advertised window mechanism is a persist mode.When a receiver can accept no more data, it sends a message having anadvertised window of zero. This transmission has the additional effectof preventing the sender from sending any more data until the receiversends another ACK message with a nonzero advertised window. Persistmode, therefore, allows the receiver to “pause” the sender until moremessages can be processed at the receiver side. However, an ACKindicating an advertised window of zero does not trigger slow start andreset the sliding window.

It would be beneficial, therefore, to provide a system and method fordetermining when a connection including a wireless link is about toexperience a timeout, and sending a suppression message to trigger apersist mode to avoid slow start from resetting the window size, whilemaintaining the same TCP/IP end-to-end connection between the sender andreceiver to avoid tearing down and buffering messages to accommodate thewireless latency.

SUMMARY OF THE INVENTION

In a multiplexed system, multiple users share access to physical layerresources, such as radio channels. There are always delays inherent inassignment and reassignment of the physical layer resource, whichpropagate up to the higher protocol layers. Such additional delays arenot insignificant. For example, a Round Trip Transfer (RTT) delay may beon the order of one second in a typical TCP/IP network layer protocol,whereas physical layer resources may require 200 milliseconds or more toreassign. Thus, a time out mechanism which only accommodates the returnlayer delay will unnecessarily time out prematurely.

A system and method are disclosed for monitoring and controlling messagedelivery from a remote node by detecting when an incoming message isreceived, determining a timeout corresponding to the timing of theacknowledgment message, and sending a suppression message if theacknowledgment message has not been sent to the remote node before thetimeout expires. The invention prevents activation of congestion controlmechanisms which reduce throughput. By determining when a sender willtimeout due to non-receipt of an ACK, and intervening with a suppressionmessage to pause the sender, congestion control mechanisms such as slowstart and congestion avoidance are prevented from activation. In thismanner, the reduction in message throughput caused by congestion controlmechanisms is avoided, thereby allowing the sender to resume messagedelivery at the same rate at which it was delivering messages when thesuppression message was received.

Sending a suppression message, therefore, prevents the sender fromtiming out for failure to receive a timely ACK. Since the sliding windowis not reset to the initial size, as would have occurred if a timeoutoccurred, the receiver can send a resume message when the ACK isreceived. The sender then resumes message transmission with the samewindow size that was in effect when the suppression message wasreceived. Since a larger window potentially allows more packets to besent at a time, message traffic throughput is increased.

The connection and associated parameters between the sender and receiverremain consistent throughout the pause periods. Since the connectionremains a single end-to-end connection, no tearing down or setting up ofconnections and buffering messages received in the interim, is required.Further, no connection parameters at either the sender or receiver inthe wired network need be modified to conform to differences in thewired and wireless communication links. In this manner, the users servedby the wireless link are less burdened with the wired link congestioncontrol mechanisms which can tend to have a negative result onthroughput over a wireless link.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects, features and advantages of theinvention will be apparent from the following more particulardescription of preferred embodiments of the invention, as illustrated inthe accompanying drawings in which like reference characters refer tothe same parts throughout the different views. The drawings are notnecessarily to scale, emphasis instead being placed upon illustratingthe principles of the invention.

FIG. 1 shows a wireless communication system operable to perform messagetransmission according to the link-aware transmission control protocolas defined herein;

FIG. 2 shows a wireless gateway connection in the wireless communicationsystem of FIG. 1;

FIG. 3 shows a protocol stack for performing the link-aware transmissioncontrol protocol as defined herein;

FIG. 4 shows message transmission as defined by the present claims;

FIG. 5 shows transmission of a suppression message;

FIG. 6 shows an alternate embodiment modifying the advertised window;

FIG. 7 shows a flowchart of message transmission; and

FIGS. 8 a–8 g show an example of message transmission as defined herein.

DETAILED DESCRIPTION OF THE INVENTION

A description of a preferred embodiment of the invention follows. FIG. 1is a block diagram of a communication system 10 operable for link-awaretransmissions in a wireless network as defined herein. The communicationsystem includes local computing devices, generally a user PC 12, asubscriber access unit (SAU) 14, a base station processor (BSP) 16, andan internetworking gateway 18. The user PC 12 is in communication withthe subscriber access unit 14 via a wired link 20. The subscriber accessunit 14 is in communication with the base station processor 16 via awireless link 26. The base station processor is in communication with aninternetworking gateway 18 via a wired link 24. The internetworkinggateway 18 is adapted for communication via a public access network suchas the Internet 28 for maintaining a connection with a remote node 30.Note that a single user PC 12 subscriber access unit (SAU) 14 and basestation processor (BSP) 16 are shown for illustrative purposes. MultipleSAUs 14 may be interconnected in an actual implementation.

The user PC 12 may therefore be provided access to the internetworkinggateway 18, which may include any remote entity located on the Internet28 or other network, through a combination of the wired 20, 24 andwireless links 26 provided. The wired links 20,24 are typicallysupported by a protocol such as TCP/IP or UDP/IP. The wireless link issupported by a wireless link protocol such as IS95 or another wirelesslink protocol such as the protocol described in pending U.S. PatentApplication entitled “Dynamic Frame Sizing Settings for MultichannelTransmission,” published as PCT application No. WO 99/44341, Sep. 2,1999.

Typically, the PC 12 provides a data packet, which may for example be anInternet Protocol (IP) packet, to the subscriber access unit 14 over thewired link 20, which may for example be an Ethernet type connection. Thesubscriber access unit 14 removes the framing of the data packet andtransfers the data in the data packet to the base station processor 16over the wireless link 26 in accordance with the wireless link protocol.The base station processor 16 extracts the wireless link frames andforwards them, in data packet form, over the wired link 24 to theinternetworking gateway 18.

Similarly, packets sent from the public access network are sent to thebase station processor 16 over the wired link 24, transmitted to thecorresponding subscriber access unit 14 over the wireless link 26, andsent to the user PC 12 over the wired link 20. The subscriber accessunit 14 and the base station processor 16 therefore denote endpoints ofthe wireless link 26, providing for wireless communication from the userPC 12 to the public access network such as the Internet 28.

In a network including a wireless link, therefore, a point to pointconnection is maintained between two entities via the wireless link.Accordingly, since bidirectional communication is provided, the basestation processor 16 and the subscriber access unit 14 each provide awireless gateway 230 supporting the wireless link 26. Referring to FIG.2, a wireless link 26 is shown between wireless gateways 230. Since thecommunication is bidirectional, the system and methods described beloware applicable to wireless gateways 230 on either side of the wirelesslink 26.

The wireless gateways 230 each include a timer manager 232, a linkdetector 234, a segment generator 236, and a packet buffer 238. Thetimer manager 232 computes the round trip time corresponding to the timeat which an ACK message is expected. When an incoming message isreceived from a wired link 40, a timer is set just prior to the time atwhich the corresponding sender will timeout for failure to receive theACK. The incoming message is then forwarded over the wireless link 26.If the timer expires before the corresponding ACK is received over thewireless link 26, the segment generator 236 generates a suppressionmessage, and sends it to the sender (not shown) over the wired link 40.The suppression message tells the sender to not send any more messagesuntil the receiver sends a resume message. When the corresponding ACK isreceived from the wireless network, it is stored in the packet buffer238. The segment generator 236 forwards the ACK message to the senderover the wired link 40. The sender then interprets this as a resumemessage.

Previous prior art approaches include MTCP, outlined in Brown, et al.,“M-TCP: TCP for Mobile Cellular Networks,” Dept. of Computer Science,University of South Carolina, Jul. 29, 1997. This paper described amethod using pico-cell cellular networks which implemented an alteredTCP stack. The M-TCP system did not maintain a single point-to-pointconnection between a wireless subscriber and wired network server, butrather terminated the wired TCP connection and instantiated a separateconnection over the wireless link, and employed a slightly modifiedTCP/IP stack on the user computer.

Referring to FIG. 3, a TCP/IP stack corresponding to the wirelessnetwork is shown. The link-aware transmission control protocol (LTCP)defined herein is disclosed. The protocols supporting the point-to-pointconnection 32 between the remote server 30 and the local user PC 12 areshown, including the transport 33 a, network 33 b, link 33 c, andphysical 33 d layer protocols.

Referring to FIGS. 4 and 1, a diagram of message transmission is shown.The remote server 30 transmits two messages at 34 a to the BSP 16, eachcontaining 1460 bytes of data, over the connection on the wired links24, 18, and 28. The BSP 16 transmits the messages to the SAU 14 over thewireless link 25 at 34 b. The SAU 14 transmits the messages to the userPC 12 at 34 c over the wired link 24. The user PC 12 responds with anACK advertising a receive window of 8760 back to the SAU 14, as shown at34 d.

It should be noted, for reasons which will become apparent below, thatin a TCP/IP connection, the ACK messages indicate the last bytereceived, and may correspond to more than one received packet.Accordingly, the ACK messages need not complement the received messageson a one to one basis. Further, since the ACK indicates only the lastbyte successfully received, and not the last packet, an ACK message canindicate successful receipt of a subset of the bytes in the receivedpacket. Additionally, since TCP/IP typically performs otherretransmission mechanisms, the methods described herein performoptimally in conjunction with a relatively persistent link layer.

The SAU 14 transmits the ACK back to the BSP 16 over the wireless link26 at 34 e. The BSP 16, however, transmits an ACK message indicatingsuccessful receipt of one byte less than the ACK received from the SAU14 at 34 f. In accordance with the invention as defined by the presentclaims, the ability to send a suppression message to pause the sender iskept available by retaining one outstanding unacknowledged byte. ATCP/IP connection does not respond well to unsolicited or duplicate ACKmessages, and such ACKs can also have the effect of triggering slowstart and closing the sliding window. Since an advertised window istypically sent with an ACK of one or more bytes, retention of oneunacknowledged byte preserves the ability to send a suppression message,described further below, by generating a TCP/IP message segmentincluding an acknowledgment of the outstanding, unacknowledged byte andan advertised window of zero.

The remote server 30 receives the ACK of all but the last of the bytessent over the wired link 24, 18, 28 at 34 f. Since the advertised windowis still 8760, the remote server sends another 2920 (2*1460) bytes at 34g. These message packets are transmitted to the user PC 12 via 34 g, 34h, and 34 i similarly to 34 a, 34 b, and 34 c above. The user PC againresponds with an ACK of the 2920 bytes in the two message packets at 34j. The SAU 14 transmits across the wireless link 26 back to the BSP 16at 34 k. The BSP again sends an ACK of all but the very last outstandingbyte back to the remote server 30. Since an ACK indicates successfulreceipt of all bytes up to and including the byte indicated in the ACK,this ACK has the effect of also acknowledging receipt of the outstandingbyte not ACKed at 34 f.

In a TCP/IP network, it is preferable to maintain the end-to-endsemantics between communicating nodes, rather than implementing a seriesof connections to maintain communication. In the system as disclosedherein, the end-to-end semantics of the connection between the remoteserver 30 and the PC 12 are maintained according to the TCP/IP protocol.Accordingly, a single point-to-point TCP/IP connection is maintained.

FIG. 5 shows transmission of a suppression message. Referring to FIGS. 5and 1, the remote server 30 sends two message packets including 2920(2*1460) bytes of data to the BSP 16 at 36 a. The message packets aretransmitted from the BSP 16 to the SAU 14 at 36 b, and from the SAU 14to the user PC 12 at 36 c. The PC 12 sends the ACK back at 36 d, 36 e,and 36 f, similar to as in FIG. 4 above, again reserving the last byteas unacknowledged by the BSP 16 at 36 f. At 36 g, the remote serversends another two packets totaling 2920 bytes (2*1460), and the BSP 16transmits these over the wireless link to the SAU 14 at 36 h, which inturn transmits to the PC 12 at 36 i. At the time shown by dotted line38, however, a problem is detected on the wireless link which will delaythe transmission of the ACK from the SAU 14 to the BSP 16. Such aproblem includes detection of a loss of the wireless link, as may occurwhen the SAU 14 travels outside the range of the BSP 16, or an eminenttimeout at the remote server 30 before an ACK should have been received,both described further below.

In response to the delayed ACK, the BSP 16 generates and sends asuppression message at 36 k. The suppression message includes anacknowledgment of the outstanding unacknowledged byte of 36 f, and anadvertised window of zero. As described above, in accordance withTCP/IP, an advertised window of zero has the effect of preventing thesender from sending additional message packets until a non-zeroadvertised window is received, effectively pausing the remote node 30 ina persist mode.

The actual ACK from the transmission at 36 i is sent from the PC 12 tothe SAU 14 at 36 j, and queued at the SAU 14. At the time shown bydotted line 40, the wireless link is available and the ACK transmittedto the BSP 16 at 36 l. The BSP 16 sends an ACK of all but oneoutstanding byte to the remote node 30 at 36 m, again reserving theability to send a suppression message, and indicates a non-zeroadvertised window of 8760 bytes, permitting the remote node 30 to againsend message packets to the PC 12 at 36 n, 26 o, and 36 p.

FIG. 6 shows another particular embodiment in which the suppressionmessage reduces the advertised window. In this embodiment, theadvertised window is not zero, but is a value reduced from that whichwas sent by the PC. In this manner, the remote node 30 is not paused inpersist mode, but is limited by the amount of data which will be sent asdetermined by the BSP 16. Referring to FIG. 6, the remote servertransmits two message packets to the PC 12 at 38 a, 38 b, and 38 c. ThePC responds with the ACK, sent at 38 d and 38 e. The BSP 16, however,reduces the advertised window by a factor of 6 from 8760 to 1460, andagain reserves an unacknowledged byte at 38 f. Reducing the advertisedwindow reduces the load on the BSP 16. This action may occur for variousreasons, such as high cell load, low buffer resources, and GoS (Grade ofService) or QoS (Quality of Service) provisions. A similar threadcontinues from 38 g–38 m.

In the above examples, the BSP 16 and SAU 14 are employed as exemplarywireless gateways for illustrative purposes. The system and methoddescribed above is adaptable to a wireless gateway on either side of awireless link. Accordingly, the discussion below will employ the term“wireless gateway” to refer to an endpoint on either side of thewireless link, and accordingly, is equally applicable to either a BSP 16or a SAU 14 or other node operable for wireless communication over an RF(radio frequency) medium.

FIG. 7 shows a flowchart of a particular embodiment of link-awaremessage transmission at a wireless gateway. Referring to FIG. 7, anincoming message packet is detected, as depicted at step 100. Aconnection corresponding to the incoming message is examined, as shownat step 102. A check is performed to determine if this message packetrepresents a new connection as disclosed at step 104. If this is a newconnection, a corresponding entry is made in the timer table, asdisclosed at step 106. A corresponding entry is also made in the linktable, as depicted at step 107. An expected timeout is computed by firstdetermining the RTT delay. A latency threshold corresponding to thepropagation time from the wired link over the wireless gateway isdetermined. Jacobsen, V. 1990 “Berkley TCP Evaulation 4.3-Tahoe to4.3-Reno,” Proceedings at the Eighteenth Internet Engineering TaskForce, p. 365 (September, 1990), University of British Columbia,Vancouver, B.C., describes a standard technique for determining latencytime at periodic given RTT delays In the preferred embodiment, RTT isdetermined by noting the time at which a data segment is received fromthe remote service 30. The segment is then forwarded over the wirelesslink, and the BSP 16 then waits for the ACK to be returned from thewireless gateway, as shown at step 108. The latency threshold issubtracted from the determined RTT to compute an expected timeout entryby which the ACK should be received. The expected timeout is stored inthe timer table to correspond to the connection, as disclosed at step110. A check is performed to determine if an ACK is received before theexpected timeout expires, as shown at step 112. If the ACK is received,control reverts to step 100 to wait for the next message packet, asshown at step 112. If the ACK is not received, a check is made todetermine if the expected timeout has expired, as depicted at step 114.If the expected timeout has not expired, a check is performed todetermine if the wireless link was dropped, as shown at step 116. Ifeither the timeout has expired, as shown at step 114, or the wirelesslink was lost, as shown at step 116, a suppression message is sent tothe remote node 30 to pause the sender in persist mode, as disclosed atstep 118, and control reverts to step 100 to wait for the next messagepacket. If the wireless link was not lost at step 116, control revertsto step 112 to again check for the ACK. Although a polling mechanism isshown for illustrative purposes, the corresponding steps could also beperformed employing an interrupt driven implementation without departingfrom the invention as described and claimed.

FIGS. 8 a–8 g disclose an example of link-aware transmissioncorresponding to the flowchart of FIG. 7. Referring to FIG. 8 a, twoconnections are established as per the known TCP/IP protocol connectionhandshake. A first connection C23 is attempted as the PC 12 sends a SYNmessage 290. The remote node (30, FIG. 1) responds with a SYN 292 overthe wireless link 26. The PC 12 then sends a SYN ACK message 296,completing connection C23. A second connection is similarly establishedfor C17, by SYN 294, SYN 295, and SYN ACK 298, establishing connectionC17.

Referring to FIG. 8 b, the user PC 12 sends a bulk data message packet300 to a remote node via the wireless gateway 230. Note that in thisexample, the user PC 12 is transmitting data packets and the remote node30 is sending ACKs, to illustrate the bidirectional nature of messagetransmission. The timer manager 232 in the wireless gateway 230determines that this message corresponds to a new connection C23, andcreates a corresponding entry 242 a in the timer table 242 having anexpected timeout value of T1. Note that the timer table and link tableentries are created upon the first transmission of a data message 300,not during the connection handshake sequence described above withrespect to FIG. 8 a. A new entry 244 a is also created in the linkdetector table 244 to correspond to connection C23 with a link status ofU (up). The message 300 is sent over the wireless link 26 at 302.

Referring to FIG. 8 c, another bulk data message packet 304 is sent fromthe PC 12, corresponding to connection C17. Accordingly, new entries 242b and 244 b are created in the timer manager table for T2 and the linkdetector table for U, respectively, and the message 304 is sent over thewireless link 26 at 306. Also, at a time less than T1, an ACK 308 isreceived for connection C23, and advertises a receive window of 1024.The timer manager 232 cancels the expected timeout T1 for connectionC23, and the ACK is modified 310 to leave one unacknowledged byte, andis forwarded through the wireless gateway to the PC 12.

Referring to FIG. 8 d, a message packet containing 512 bytes is sentfrom the PC 12 to the wireless gateway 230 on connection C23. The timermanager computes a new expected timeout T3 timeout and updates the entry242 a for connection C23. Alternatively, the entry 242 a could have beendeleted when the ACK 308 (FIG. 8 c) was received and a new entry createdfor the message packet 312. The message packet 312 is transmitted overthe wireless link at 314. Continuing to refer to FIG. 8 d, at a timeless than T2, an ACK 316 is received for connection C17. The timermanager updates the timer table entry 242 b corresponding to connectionC17, and the ACK is forwarded to the PC 12 at 318.

Referring to FIG. 8 e, time T3 has elapsed and accordingly, expectedtimeout T3 of timer table entry 242 a is triggered. The timer manager232 directs the segment generator 236 to generate a suppression messagefor connection C23 before the PC 12 experiences a timeout for failure toreceive an expected ACK. The segment generator 236 generates asuppression message 320 ACKing the last byte of the last acknowledgedmessage packet (308, FIG. 8 c) sent and advertising a receive window ofzero, and sends it to the PC 12 at 322, pausing the PC 12 in persistmode with respect to connection C23.

Referring to FIG. 8 f, the ACK 324 on connection C23 corresponding tothe message packet 314 is received at the wireless gateway 230 and isqueued in the packet buffer 238 at 326, until it can be sent to the PC12 at 328, advertising a window of 512 and removing the user PC 12 frompersist, or pause mode. Referring to FIGS. 8 f and 8 g, the wirelesslink corresponding to connection C17 is dropped, as indicated by linktable entry 244 b having a value of D (down). Accordingly, prior to theexpiration of the expected timeout T2 for connection C17, the linkdetector 234 immediately directs the segment generator to generate asuppression message 328 for connection C17, which is sent to the PC at330. Note that time T2 need not necessarily precede time T3 because theRTT determinations for the two connections may be different.

Those skilled in the art should readily appreciate that the programsdefining the operations and methods defined herein are deliverable to awireless gateway in many forms, including but not limited to a)information permanently stored on non-writeable storage media such asROM devices, b) information alterably stored on writeable storage mediasuch as floppy disks, magnetic tapes, CDs, RAM devices, and othermagnetic and optical media, or c) information conveyed to a computerthrough communication media, for example using baseband signaling orbroadband signaling techniques, as in an electronic network such as theInternet or telephone modem lines. The operations and methods may beimplemented in a software executable by a processor or as a set ofinstructions embedded in a carrier wave. Alternatively, the operationsand methods may be embodied in whole or in part using hardwarecomponents, such as Application Specific Integrated Circuits (ASICs),state machines, controllers or other hardware components or devices, ora combination of hardware, software, and firmware components.

While the system and method for link-aware message transmission havebeen particularly shown and described with references to embodimentsthereof, it will be understood by those skilled in the art that variouschanges in form and details may be made therein without departing fromthe scope of the invention encompassed by the appended claims.Accordingly, the present invention is not intended to be limited exceptby the following claims.

1. A method of monitoring and controlling message delivery over a singlepoint-to-point connection including a wireless link between a sendingnode and a receiving node comprising: establishing a singlepoint-to-point connection including a wireless link between a sendingnode and a receiving node, the sending node and the receiving node bothcommunicating over the connection using a common communication protocol;detecting when an incoming message that is destined for the receivingnode is received over the connection from the sending node by examiningthe incoming message; determining a timeout corresponding to the time atwhich an acknowledgment message is expected over the connection from thereceiving node by the sending node in response to the incoming message;forwarding the incoming message over the connection to the receivingnode; and sending a suppression message over the connection to thesending node if the acknowledgment message has not been sent to thesending node before the timeout expires, the suppression messagesuspending messages from being sent by the sending node to the receivingnode.
 2. The method of claim 1 further comprising sending a resumemessage to the sending node.
 3. The method of claim 2 wherein the resumemessage is sent when the acknowledgment message is sent.
 4. The methodof claim 2 wherein the resume message is the acknowledgment message. 5.The method of claim 1 further comprising forwarding the incoming messageover a wireless link to a user.
 6. The method of claim 5 furthercomprising receiving the acknowledgment from the user via the wirelesslink.
 7. The method of claim 5 further comprising sending thesuppression message immediately if the wireless link was lost.
 8. Themethod of claim 1 wherein determining further comprises determining around-trip time.
 9. The method of claim 8 wherein determining furthercomprises setting a timer in a timer table.
 10. The method of claim 1wherein sending the suppression message further comprises generating amessage segment.
 11. The method of claim 10 wherein generating themessage segment comprises generating according to a predeterminedprotocol.
 12. The method of claim 11 wherein the predetermined protocolis TCP/IP.
 13. The method of claim 12 wherein the suppression message isindicative of an advertised window of zero.
 14. The method of claim 1wherein the detecting and the sending do not require modification of aTCP/IP stack at the user.
 15. The method of claim 1 wherein thedetermining and detecting occur by reading a transport layer segmentfrom a network layer.
 16. A system for monitoring and controllingmessage delivery over a single point-to-point connection including awireless link between a sending node and a receiving node comprising: awireless gateway operable to detect when an incoming message that isdestined for a receiving node is received from a sending node over asingle point to point connection including a wireless link by examiningthe incoming message, the sending node and the receiving node bothcommunicating over the connection using a common communication protocol;a timer manager in the wireless gateway operable to determine a timeoutcorresponding to the time at which an acknowledgment message is expectedover the connection from the receiving node by the sending node inresponse to the incoming message; and a segment generator in thewireless gateway responsive to the timeout and operable to generate andsend a suppression message over the connection to the sending node ifthe acknowledgment message has not been sent to the sending node beforethe timeout expires, the suppression message suspending messages frombeing sent by the sending node to the receiving node.
 17. The system ofclaim 16 wherein the segment generator is further operable to generateand send a resume message to the sending node, wherein the resumemessage is operable to allow messages to be sent by the sending node.18. The system of claim 17 wherein the segment generator is operable tosend the resume message when the acknowledgment message is sent.
 19. Thesystem of claim 17 wherein the resume message is the acknowledgmentmessage.
 20. The system of claim 16 wherein the wireless gateway isoperable to forward the incoming message over a wireless link to a user.21. The system of claim 20 wherein the wireless gateway is furtheroperable to receive the acknowledgment from the user via the wirelesslink.
 22. The system of claim 20 wherein the wireless gateway furthercomprises a link detector operable to determine if the wireless link islost.
 23. The system of claim 22 wherein the link detector is furtheroperable to direct the segment generator to send the suppression messageimmediately if the link detector detects that the wireless link is lost.24. The system of claim 16 wherein the timer manager is further operableto determine a round-trip time.
 25. The system of claim 24 wherein thetimer manager is further operable to set a timer corresponding to theround-trip time in a timer table.
 26. The system of claim 16 whereinsending the suppression message further comprises generating a messagesegment.
 27. The system of claim 26 wherein the segment generatorgenerates the message segment according to a predetermined protocol. 28.The system of claim 27 wherein the predetermined protocol is TCP/IP. 29.The system of claim 28 wherein the suppression message is indicative ofan advertised window of zero.
 30. The system of claim 28 wherein aTCP/IP stack associated with the predetermined protocol andcorresponding to the sending node is not modified by the wirelessgateway.
 31. The system of claim 16 wherein the timer manager isoperable to read a network layer segment from a transport layer.
 32. Acomputer-readable medium comprising computer program codes formonitoring and controlling message delivery over a single point-to-pointconnection including a wireless link between a sending node and areceiving node, the computer program codes comprising: computer programcode for establishing a single point-to-point connection including awireless link between a sending node and a receiving node, the sendingnode and the receiving node both communicating over the connection usinga common communication protocol; computer program code for detectingwhen an incoming message that is destined for the receiving node isreceived over the connection from the sending node by examining theincoming message; computer program code for determining a timeoutcorresponding to the time at which an acknowledgment message is expectedover the connection from the receiving node by the sending node inresponse to the incoming message; computer program code for forwardingthe incoming message over the connection to the receiving node; andcomputer program code for sending a suppression message over theconnection to the sending node if the acknowledgment message has notbeen sent to the sending node before the timeout expires, thesuppression message suspending messages from being sent by the sendingnode to the receiving node.
 33. A system for monitoring and controllingmessage delivery over a single point-to-point connection including awireless link between a sending node and a receiving node, comprising:means for establishing a single point-to-point connection including awireless link between a sending node and a receiving node, the sendingnode and the receiving node both communicating over the connection usinga common communication protocol; means for detecting when an incomingmessage that is destined for the receiving node is received over theconnection from the sending node by examining the incoming message;means for determining a timeout corresponding to the time at which anacknowledgment message is expected over the connection from thereceiving node by the sending node in response to the incoming message;means for forwarding the incoming message over the connection to thereceiving node; and means for sending a suppression message over theconnection to the sending node if the acknowledgment message has notbeen sent to the sending node before the timeout expires, thesuppression message suspending message from being sent from the sendingnode to the receiving node.